package com.he.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MailBoxExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MailBoxExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andReceiveIdIsNull() {
            addCriterion("receive_id is null");
            return (Criteria) this;
        }

        public Criteria andReceiveIdIsNotNull() {
            addCriterion("receive_id is not null");
            return (Criteria) this;
        }

        public Criteria andReceiveIdEqualTo(Integer value) {
            addCriterion("receive_id =", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdNotEqualTo(Integer value) {
            addCriterion("receive_id <>", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdGreaterThan(Integer value) {
            addCriterion("receive_id >", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("receive_id >=", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdLessThan(Integer value) {
            addCriterion("receive_id <", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdLessThanOrEqualTo(Integer value) {
            addCriterion("receive_id <=", value, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdIn(List<Integer> values) {
            addCriterion("receive_id in", values, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdNotIn(List<Integer> values) {
            addCriterion("receive_id not in", values, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdBetween(Integer value1, Integer value2) {
            addCriterion("receive_id between", value1, value2, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveIdNotBetween(Integer value1, Integer value2) {
            addCriterion("receive_id not between", value1, value2, "receiveId");
            return (Criteria) this;
        }

        public Criteria andReceiveNameIsNull() {
            addCriterion("receive_name is null");
            return (Criteria) this;
        }

        public Criteria andReceiveNameIsNotNull() {
            addCriterion("receive_name is not null");
            return (Criteria) this;
        }

        public Criteria andReceiveNameEqualTo(String value) {
            addCriterion("receive_name =", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameNotEqualTo(String value) {
            addCriterion("receive_name <>", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameGreaterThan(String value) {
            addCriterion("receive_name >", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameGreaterThanOrEqualTo(String value) {
            addCriterion("receive_name >=", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameLessThan(String value) {
            addCriterion("receive_name <", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameLessThanOrEqualTo(String value) {
            addCriterion("receive_name <=", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameLike(String value) {
            addCriterion("receive_name like", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameNotLike(String value) {
            addCriterion("receive_name not like", value, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameIn(List<String> values) {
            addCriterion("receive_name in", values, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameNotIn(List<String> values) {
            addCriterion("receive_name not in", values, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameBetween(String value1, String value2) {
            addCriterion("receive_name between", value1, value2, "receiveName");
            return (Criteria) this;
        }

        public Criteria andReceiveNameNotBetween(String value1, String value2) {
            addCriterion("receive_name not between", value1, value2, "receiveName");
            return (Criteria) this;
        }

        public Criteria andSendIdIsNull() {
            addCriterion("send_id is null");
            return (Criteria) this;
        }

        public Criteria andSendIdIsNotNull() {
            addCriterion("send_id is not null");
            return (Criteria) this;
        }

        public Criteria andSendIdEqualTo(Integer value) {
            addCriterion("send_id =", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdNotEqualTo(Integer value) {
            addCriterion("send_id <>", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdGreaterThan(Integer value) {
            addCriterion("send_id >", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("send_id >=", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdLessThan(Integer value) {
            addCriterion("send_id <", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdLessThanOrEqualTo(Integer value) {
            addCriterion("send_id <=", value, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdIn(List<Integer> values) {
            addCriterion("send_id in", values, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdNotIn(List<Integer> values) {
            addCriterion("send_id not in", values, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdBetween(Integer value1, Integer value2) {
            addCriterion("send_id between", value1, value2, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendIdNotBetween(Integer value1, Integer value2) {
            addCriterion("send_id not between", value1, value2, "sendId");
            return (Criteria) this;
        }

        public Criteria andSendNameIsNull() {
            addCriterion("send_name is null");
            return (Criteria) this;
        }

        public Criteria andSendNameIsNotNull() {
            addCriterion("send_name is not null");
            return (Criteria) this;
        }

        public Criteria andSendNameEqualTo(String value) {
            addCriterion("send_name =", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameNotEqualTo(String value) {
            addCriterion("send_name <>", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameGreaterThan(String value) {
            addCriterion("send_name >", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameGreaterThanOrEqualTo(String value) {
            addCriterion("send_name >=", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameLessThan(String value) {
            addCriterion("send_name <", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameLessThanOrEqualTo(String value) {
            addCriterion("send_name <=", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameLike(String value) {
            addCriterion("send_name like", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameNotLike(String value) {
            addCriterion("send_name not like", value, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameIn(List<String> values) {
            addCriterion("send_name in", values, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameNotIn(List<String> values) {
            addCriterion("send_name not in", values, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameBetween(String value1, String value2) {
            addCriterion("send_name between", value1, value2, "sendName");
            return (Criteria) this;
        }

        public Criteria andSendNameNotBetween(String value1, String value2) {
            addCriterion("send_name not between", value1, value2, "sendName");
            return (Criteria) this;
        }

        public Criteria andMailIdIsNull() {
            addCriterion("mail_id is null");
            return (Criteria) this;
        }

        public Criteria andMailIdIsNotNull() {
            addCriterion("mail_id is not null");
            return (Criteria) this;
        }

        public Criteria andMailIdEqualTo(Integer value) {
            addCriterion("mail_id =", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdNotEqualTo(Integer value) {
            addCriterion("mail_id <>", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdGreaterThan(Integer value) {
            addCriterion("mail_id >", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("mail_id >=", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdLessThan(Integer value) {
            addCriterion("mail_id <", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdLessThanOrEqualTo(Integer value) {
            addCriterion("mail_id <=", value, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdIn(List<Integer> values) {
            addCriterion("mail_id in", values, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdNotIn(List<Integer> values) {
            addCriterion("mail_id not in", values, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdBetween(Integer value1, Integer value2) {
            addCriterion("mail_id between", value1, value2, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailIdNotBetween(Integer value1, Integer value2) {
            addCriterion("mail_id not between", value1, value2, "mailId");
            return (Criteria) this;
        }

        public Criteria andMailTitleIsNull() {
            addCriterion("mail_title is null");
            return (Criteria) this;
        }

        public Criteria andMailTitleIsNotNull() {
            addCriterion("mail_title is not null");
            return (Criteria) this;
        }

        public Criteria andMailTitleEqualTo(String value) {
            addCriterion("mail_title =", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleNotEqualTo(String value) {
            addCriterion("mail_title <>", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleGreaterThan(String value) {
            addCriterion("mail_title >", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleGreaterThanOrEqualTo(String value) {
            addCriterion("mail_title >=", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleLessThan(String value) {
            addCriterion("mail_title <", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleLessThanOrEqualTo(String value) {
            addCriterion("mail_title <=", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleLike(String value) {
            addCriterion("mail_title like", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleNotLike(String value) {
            addCriterion("mail_title not like", value, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleIn(List<String> values) {
            addCriterion("mail_title in", values, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleNotIn(List<String> values) {
            addCriterion("mail_title not in", values, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleBetween(String value1, String value2) {
            addCriterion("mail_title between", value1, value2, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailTitleNotBetween(String value1, String value2) {
            addCriterion("mail_title not between", value1, value2, "mailTitle");
            return (Criteria) this;
        }

        public Criteria andMailDateIsNull() {
            addCriterion("mail_date is null");
            return (Criteria) this;
        }

        public Criteria andMailDateIsNotNull() {
            addCriterion("mail_date is not null");
            return (Criteria) this;
        }

        public Criteria andMailDateEqualTo(Date value) {
            addCriterion("mail_date =", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateNotEqualTo(Date value) {
            addCriterion("mail_date <>", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateGreaterThan(Date value) {
            addCriterion("mail_date >", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateGreaterThanOrEqualTo(Date value) {
            addCriterion("mail_date >=", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateLessThan(Date value) {
            addCriterion("mail_date <", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateLessThanOrEqualTo(Date value) {
            addCriterion("mail_date <=", value, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateIn(List<Date> values) {
            addCriterion("mail_date in", values, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateNotIn(List<Date> values) {
            addCriterion("mail_date not in", values, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateBetween(Date value1, Date value2) {
            addCriterion("mail_date between", value1, value2, "mailDate");
            return (Criteria) this;
        }

        public Criteria andMailDateNotBetween(Date value1, Date value2) {
            addCriterion("mail_date not between", value1, value2, "mailDate");
            return (Criteria) this;
        }

        public Criteria andDraftsIsNull() {
            addCriterion("drafts is null");
            return (Criteria) this;
        }

        public Criteria andDraftsIsNotNull() {
            addCriterion("drafts is not null");
            return (Criteria) this;
        }

        public Criteria andDraftsEqualTo(Byte value) {
            addCriterion("drafts =", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsNotEqualTo(Byte value) {
            addCriterion("drafts <>", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsGreaterThan(Byte value) {
            addCriterion("drafts >", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsGreaterThanOrEqualTo(Byte value) {
            addCriterion("drafts >=", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsLessThan(Byte value) {
            addCriterion("drafts <", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsLessThanOrEqualTo(Byte value) {
            addCriterion("drafts <=", value, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsIn(List<Byte> values) {
            addCriterion("drafts in", values, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsNotIn(List<Byte> values) {
            addCriterion("drafts not in", values, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsBetween(Byte value1, Byte value2) {
            addCriterion("drafts between", value1, value2, "drafts");
            return (Criteria) this;
        }

        public Criteria andDraftsNotBetween(Byte value1, Byte value2) {
            addCriterion("drafts not between", value1, value2, "drafts");
            return (Criteria) this;
        }

        public Criteria andSendMailIsNull() {
            addCriterion("send_mail is null");
            return (Criteria) this;
        }

        public Criteria andSendMailIsNotNull() {
            addCriterion("send_mail is not null");
            return (Criteria) this;
        }

        public Criteria andSendMailEqualTo(Byte value) {
            addCriterion("send_mail =", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailNotEqualTo(Byte value) {
            addCriterion("send_mail <>", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailGreaterThan(Byte value) {
            addCriterion("send_mail >", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailGreaterThanOrEqualTo(Byte value) {
            addCriterion("send_mail >=", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailLessThan(Byte value) {
            addCriterion("send_mail <", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailLessThanOrEqualTo(Byte value) {
            addCriterion("send_mail <=", value, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailIn(List<Byte> values) {
            addCriterion("send_mail in", values, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailNotIn(List<Byte> values) {
            addCriterion("send_mail not in", values, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailBetween(Byte value1, Byte value2) {
            addCriterion("send_mail between", value1, value2, "sendMail");
            return (Criteria) this;
        }

        public Criteria andSendMailNotBetween(Byte value1, Byte value2) {
            addCriterion("send_mail not between", value1, value2, "sendMail");
            return (Criteria) this;
        }

        public Criteria andInboxIsNull() {
            addCriterion("inbox is null");
            return (Criteria) this;
        }

        public Criteria andInboxIsNotNull() {
            addCriterion("inbox is not null");
            return (Criteria) this;
        }

        public Criteria andInboxEqualTo(Byte value) {
            addCriterion("inbox =", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxNotEqualTo(Byte value) {
            addCriterion("inbox <>", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxGreaterThan(Byte value) {
            addCriterion("inbox >", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxGreaterThanOrEqualTo(Byte value) {
            addCriterion("inbox >=", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxLessThan(Byte value) {
            addCriterion("inbox <", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxLessThanOrEqualTo(Byte value) {
            addCriterion("inbox <=", value, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxIn(List<Byte> values) {
            addCriterion("inbox in", values, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxNotIn(List<Byte> values) {
            addCriterion("inbox not in", values, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxBetween(Byte value1, Byte value2) {
            addCriterion("inbox between", value1, value2, "inbox");
            return (Criteria) this;
        }

        public Criteria andInboxNotBetween(Byte value1, Byte value2) {
            addCriterion("inbox not between", value1, value2, "inbox");
            return (Criteria) this;
        }

        public Criteria andIsReadIsNull() {
            addCriterion("is_read is null");
            return (Criteria) this;
        }

        public Criteria andIsReadIsNotNull() {
            addCriterion("is_read is not null");
            return (Criteria) this;
        }

        public Criteria andIsReadEqualTo(Byte value) {
            addCriterion("is_read =", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadNotEqualTo(Byte value) {
            addCriterion("is_read <>", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadGreaterThan(Byte value) {
            addCriterion("is_read >", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_read >=", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadLessThan(Byte value) {
            addCriterion("is_read <", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadLessThanOrEqualTo(Byte value) {
            addCriterion("is_read <=", value, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadIn(List<Byte> values) {
            addCriterion("is_read in", values, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadNotIn(List<Byte> values) {
            addCriterion("is_read not in", values, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadBetween(Byte value1, Byte value2) {
            addCriterion("is_read between", value1, value2, "isRead");
            return (Criteria) this;
        }

        public Criteria andIsReadNotBetween(Byte value1, Byte value2) {
            addCriterion("is_read not between", value1, value2, "isRead");
            return (Criteria) this;
        }

        public Criteria andTrashIsNull() {
            addCriterion("trash is null");
            return (Criteria) this;
        }

        public Criteria andTrashIsNotNull() {
            addCriterion("trash is not null");
            return (Criteria) this;
        }

        public Criteria andTrashEqualTo(Byte value) {
            addCriterion("trash =", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashNotEqualTo(Byte value) {
            addCriterion("trash <>", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashGreaterThan(Byte value) {
            addCriterion("trash >", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashGreaterThanOrEqualTo(Byte value) {
            addCriterion("trash >=", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashLessThan(Byte value) {
            addCriterion("trash <", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashLessThanOrEqualTo(Byte value) {
            addCriterion("trash <=", value, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashIn(List<Byte> values) {
            addCriterion("trash in", values, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashNotIn(List<Byte> values) {
            addCriterion("trash not in", values, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashBetween(Byte value1, Byte value2) {
            addCriterion("trash between", value1, value2, "trash");
            return (Criteria) this;
        }

        public Criteria andTrashNotBetween(Byte value1, Byte value2) {
            addCriterion("trash not between", value1, value2, "trash");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}